package com.shopping.huaju.commodity.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shopping.huaju.common.utils.PageUtils;
import com.shopping.huaju.commodity.entity.AttrEntity;

import java.util.List;
import java.util.Map;

/**
 * 商品属性表
 *
 * @author tofu
 * @email tofu@qq.com
 * @date 2023-11-07 18:28:20
 */
public interface AttrService extends IService<AttrEntity> {

    PageUtils queryPage(Map<String, Object> params);
    //自定义接口 -- 实现将区分基本属性和销售属性，将销售属性入属性库，将基本属性入属性库，同时还要记录属性和属性组的关联关系到关系库
    boolean saveAttrAndAttrGroupRelation(AttrEntity attr);
    //自定义接口，实现修改基本属性和 基本属性与属性组的关系
    boolean updateAttrAndAttrGroupRelation(AttrEntity attr);
    //自定义接口，实现分页和条件查询
    PageUtils queryPageBaseAttr(Map<String, Object> params,Long CategoryId);
    PageUtils queryPageSaleAttr(Map<String, Object> params,Long CategoryId);

    //自定义接口，根据 属性组Id 获取该属性组对应的所有属性对象
    List<AttrEntity> getRelationAttr(Long attrGroupId);
    //实现根据属性组id返回对应可以添加的基本属性的信息列表
    PageUtils getAllowedAttrs(Map<String, Object> params,Long attrGroupId);

    /**
     * 在指定的所有属性集合中，挑出检索属性
     * @param attrIds
     * @return
     */
    List<Long> selectSearchAttrIds(List<Long> attrIds);
}

